import request from '@/utils/request'

/**
 * 表单相关API
 */
export default {
  /**
   * 获取表单列表
   * @param {Object} params 查询参数
   * @returns {Promise<Object>}
   */
  getFormList(params) {
    return request({
      url: '/forms',
      method: 'get',
      params,
    })
  },

  /**
   * 获取表单详情
   * @param {String} id 表单ID
   * @returns {Promise<Object>}
   */
  getFormDetail(id) {
    return request({
      url: `/forms/${id}`,
      method: 'get',
    })
  },

  /**
   * 根据表单编码获取表单详情
   * @param {String} code 表单编码
   * @returns {Promise<Object>}
   */
  getFormByCode(code) {
    return request({
      url: `/forms/code/${code}`,
      method: 'get',
    })
  },

  /**
   * 创建新表单
   * @param {Object} data 表单数据
   * @returns {Promise<Object>}
   */
  saveForm(data) {
    return request({
      url: '/forms',
      method: 'post',
      data,
    })
  },

  /**
   * 更新表单
   * @param {String} id 表单ID
   * @param {Object} data 表单数据
   * @returns {Promise<Object>}
   */
  updateForm(id, data) {
    return request({
      url: `/forms/${id}`,
      method: 'put',
      data,
    })
  },

  /**
   * 删除表单
   * @param {String} id 表单ID
   * @returns {Promise<Object>}
   */
  deleteForm(id) {
    return request({
      url: `/forms/${id}`,
      method: 'delete',
    })
  },

  /**
   * 发布表单
   * @param {String} id 表单ID
   * @returns {Promise<Object>}
   */
  publishForm(id) {
    return request({
      url: `/forms/${id}/publish`,
      method: 'post',
    })
  },

  /**
   * 停用表单
   * @param {String} id 表单ID
   * @returns {Promise<Object>}
   */
  disableForm(id) {
    return request({
      url: `/forms/${id}/disable`,
      method: 'post',
    })
  },

  /**
   * 获取表单历史版本
   * @param {String} id 表单ID
   * @returns {Promise<Object>}
   */
  getFormVersions(id) {
    return request({
      url: `/forms/${id}/versions`,
      method: 'get',
    })
  },

  /**
   * 批量更新表单分组
   * @param {Object} data 包含formIds和groupId
   * @returns {Promise<Object>}
   */
  batchUpdateGroup(data) {
    return request({
      url: '/forms/batch-update-group',
      method: 'post',
      data,
    })
  },
}
